using System;
namespace Servlets.Attributes
{
	[AttributeUsage(AttributeTargets.Class, AllowMultiple=false)]
	public class ServletAttribute : System.Attribute {
		
	}
	
	public class ServletMethodAttribute : System.Attribute {
		public string UrlMapping{get; protected set;}
	}
	
	[AttributeUsage(AttributeTargets.Method, AllowMultiple=true)]
	public class HeadMethodAttribute : ServletMethodAttribute
	{		
		public HeadMethodAttribute(String urlmapping) {
			this.UrlMapping = urlmapping;
		}
	}
	
	[AttributeUsage(AttributeTargets.Method, AllowMultiple=true)]
	public class GetMethodAttribute : ServletMethodAttribute
	{
		public GetMethodAttribute(String urlmapping) {
			this.UrlMapping = urlmapping;
		}
	}
	
	[AttributeUsage(AttributeTargets.Method, AllowMultiple=true)]
	public class PostMethodAttribute : ServletMethodAttribute
	{
		public PostMethodAttribute(String urlmapping) {
			this.UrlMapping = urlmapping;
		}
	}
	
	[AttributeUsage(AttributeTargets.Method, AllowMultiple=true)]
	public class PutMethodAttribute : ServletMethodAttribute
	{
		public PutMethodAttribute(String urlmapping) {
			this.UrlMapping = urlmapping;
		}
	}
	
	[AttributeUsage(AttributeTargets.Method, AllowMultiple=true)]
	public class DeleteMethodAttribute : ServletMethodAttribute
	{
		public DeleteMethodAttribute(String urlmapping) {
			this.UrlMapping = urlmapping;
		}
	}
	
	[AttributeUsage(AttributeTargets.Method, AllowMultiple=true)]
	public class TraceMethodAttribute : ServletMethodAttribute
	{
		public TraceMethodAttribute(String urlmapping) {
			this.UrlMapping = urlmapping;
		}
	}
	
	[AttributeUsage(AttributeTargets.Method, AllowMultiple=true)]
	public class OptionsMethodAttribute : ServletMethodAttribute
	{
		public OptionsMethodAttribute(String urlmapping) {
			this.UrlMapping = urlmapping;
		}
	}
	
	[AttributeUsage(AttributeTargets.Method, AllowMultiple=true)]
	public class ConnectMethodAttribute : ServletMethodAttribute
	{
		public ConnectMethodAttribute(String urlmapping) {
			this.UrlMapping = urlmapping;
		}
	}
	
	[AttributeUsage(AttributeTargets.Method, AllowMultiple=true)]
	public class PathMethodAttribute : ServletMethodAttribute
	{
		public PathMethodAttribute(String urlmapping) {
			this.UrlMapping = urlmapping;
		}
	}
}

